﻿
namespace Codemonk.Common.Injection
{
    /// <summary>
    /// 对象创建器
    /// </summary>
    public interface IObjectBuilder
    {
        /// <summary>
        /// 按照要解析配置名称,解析一个类型并返回这个类型的一个实例
        /// </summary>
        /// <param name="name">配置名称</param>
        /// <returns>类型实例</returns>
        object Resolve(string name = null);
        /// <summary>
        /// 使用指定名称的变量来替代接口值
        /// </summary>
        /// <typeparam name="T">目标接口</typeparam>
        /// <param name="name">配置的变量名称</param>
        /// <returns>接口值</returns>
        T Resolve<T>(string name = null);
    }
}
